home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-0071 / compress / ca_unpac.gfa (.txt) < prev    next >
GFA-BASIC Atari  |  1997-04-16  |  2KB  |  93 lines

  1. '
  2. '
  3. ' CRACK ART 'CA_UNPACK'
  4. '
  5. ' Dekompressionsroutine für CA?-Bilder
  6. '
  7. ' © Detlef Röttger & Jan Borchers 1989-91
  8. '
  9. '
  10. ' ## INLINE:
  11. ' $0000: 60 1a 00 00 01 00 00 00 00 00 00 00 00 00 00 00 
  12. ' $0010: 00 00 00 00 00 00 00 00 00 00 00 00 48 e7 7f fe 
  13. ' $0020: 4c ef 03 00 00 3c 24 49 47 e9 7d 00 42 47 42 46 
  14. ' $0030: 1e 18 1c 18 30 18 c0 bc 00 00 7f ff 2a 40 12 06 
  15. ' $0040: e1 49 12 06 34 01 48 41 32 02 24 01 26 01 28 01 
  16. ' $0050: 2a 01 2c 4b 30 3c 06 3f 48 e6 7c 00 51 c8 ff fa 
  17. ' $0060: 20 0d 53 40 6b 18 42 41 12 18 b2 07 67 16 14 81 
  18. ' $0070: d5 cd b5 cb 6d f0 52 89 24 49 51 c8 ff ea 4c df 
  19. ' $0080: 7f fe 4e 75 12 18 b2 07 67 e4 4a 01 66 1c 42 42 
  20. ' $0090: 14 18 12 18 14 81 d5 cd b5 cb 6d 08 52 89 24 49 
  21. ' $00a0: 53 40 6b da 51 ca ff ee 60 bc 0c 01 00 01 66 24 
  22. ' $00b0: 42 42 42 43 16 18 e1 4b 14 18 d4 43 12 18 14 81 
  23. ' $00c0: d5 cd b5 cb 6d 08 52 89 24 49 53 40 6b b0 51 ca 
  24. ' $00d0: ff ee 60 92 0c 01 00 02 66 24 42 43 16 18 67 9e 
  25. ' $00e0: e1 4b 42 42 14 18 d4 43 d5 cd b5 cb 6d 08 52 89 
  26. ' $00f0: 24 49 53 40 6b 88 51 ca ff f0 60 00 ff 6a 42 42 
  27. ' $0100: 14 18 14 82 d5 cd b5 cb 6d 0a 52 89 24 49 53 40 
  28. ' $0110: 6b 00 ff 6c 51 c9 ff ec 60 00 ff 4c 00 00 00 00 
  29. ' 288  Bytes.
  30. INLINE ca_unpack%,288
  31. '
  32. resolution&=XBIOS(4)                            ! Auflösung holen
  33. IF resolution&>2                                ! keine ST-Auflösung
  34.   END
  35. ENDIF
  36. '
  37. DO
  38.   fpath$=CHR$(GEMDOS(25)+65)+":"+DIR$(0)+"\*.CA"+CHR$(resolution&+49)
  39.   FILESELECT #"LOAD CA",fpath$,"",fname$        ! File auswählen
  40.   CLS
  41.   IF EXIST(fname$)=FALSE                        ! File nicht existent oder Abbruch
  42.     END
  43.   ENDIF
  44.   '
  45.   RESERVE 64000
  46.   '
  47.   OPEN "I",#1,fname$                            ! File öffnen
  48.   buffer%=MALLOC(LOF(#1))                       ! Buffer reservieren
  49.   CLOSE #1
  50.   '
  51.   IF buffer%<>0
  52.     BLOAD fname$,buffer%                        ! Bild laden
  53.     '
  54.     IF DPEEK(buffer%)<>&H4341                   ! 'CA'-Kennung checken
  55.       PRINT "Kein CA-Bild! (Abbruch)"
  56.     ELSE
  57.       IF PEEK(buffer%+3)<>resolution&           ! Auflösung checken
  58.         PRINT "Falsche Auflösung! (Abbruch)"
  59.       ELSE
  60.         '
  61.         SELECT resolution&
  62.         CASE 0                                          ! Low Res
  63.           ~XBIOS(6,L:buffer%+4)                           ! Farben setzen
  64.           offset%=36                                    ! Image-Beginn
  65.         CASE 1                                          ! Med Res
  66.           ~XBIOS(6,L:buffer%+4)
  67.           offset%=12
  68.         CASE 2                                          ! High Res
  69.           ' Monochrombilder besitzen keine Farbpalette
  70.           offset%=4
  71.         ENDSELECT
  72.         '
  73.         HIDEM
  74.         IF PEEK(buffer%+2)=0                            ! Bild ungepackt
  75.           BMOVE buffer%+offset%,XBIOS(2),32000
  76.         ELSE                                            ! Bild gepackt
  77.           ~C:ca_unpack%(L:buffer%+offset%,L:XBIOS(2))   ! Image Auspacken
  78.         ENDIF
  79.         SHOWM
  80.         '
  81.       ENDIF
  82.     ENDIF
  83.     '
  84.     ~MFREE(buffer%)                     ! Speicher wieder freigeben
  85.   ENDIF
  86.   RESERVE
  87.   '
  88.   WHILE MOUSEK
  89.   WEND
  90.   REPEAT
  91.   UNTIL MOUSEK
  92. LOOP
  93.